      SUBROUTINE CALCX(XIS,XISA,U,YIP,HBAR,EBAR,EEBAR,inda,
     &                 I,N,NB,XNORMX)

      IMPLICIT DOUBLE PRECISION (A-H,O-Z)

      DIMENSION XIS(N),XISA(N),U(N,NB+1),HBAR(NB+1,NB+1)
      DIMENSION YIP(NB+1),EBAR(NB+1),EEBAR(NB+1)


c      COMMON /GMRS/ XIS(1000),U(1000,91),EBAR(91),HBAR(91,91),
c     *          YIP(91),CE(91),ES(91),        xisa(1000)

C      dimension eebar(NB+1)

        I1= I+1
        IM1= I-1

        do 10 iaux=1,nb+1
            eebar(iaux)= ebar(iaux)
 10     continue

        YIP(I)= eEBAR(I)/HBAR(I,I)

        DO 160 IAUX=1,IM1

          KAUX= I-IAUX
          KAUX1= KAUX+1

          DO 170 JAUX=KAUX1,I
            eEBAR(KAUX)= eEBAR(KAUX) - HBAR(KAUX,JAUX)*YIP(JAUX)
 170      CONTINUE
          YIP(KAUX)= eEBAR(KAUX)/HBAR(KAUX,KAUX)
 160    CONTINUE

        do 175 iaux=1,n
           xis(iaux)=xisa(iaux)
 175    continue

        DO 180 JAUX=1,I
          DO 180 IAUX=1,N
             XIS(IAUX)= XIS(IAUX) + YIP(JAUX)*U(IAUX,JAUX)
 180      CONTINUE

C.......CALCULA A NORMA DA SOLUCAO.
        XNORMX=0.D0
        DO 190 IAUX=1,N
           XNORMX= XNORMX + XIS(IAUX)*XIS(IAUX)
 190    CONTINUE
        XNORMX= DSQRT(XNORMX)

C.......Atualiza a solucao.
       if (inda.ne.0) then 
        do 200 iaux=1,n
           xisa(iaux)=xis(iaux)
 200    continue
        end if

        RETURN
        END

